Participant info

| Children |
17 |
11.32 |
0.8799 |
8 |
| Adolescents |
29 |
15.37 |
1.518 |
14 |
| Adults |
46 |
22.11 |
2.36 |
25 |
Agency task: Machine selection
Model: Optimal machine choices across trials by condition and
age
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: stage_2_acc ~ condition * zTrialOfCond * (zAge) + (condition *
## Model: zTrialOfCond | subID)
## Data: banditTask.filtered
## Df full model: 18
## Effect df Chisq p.value
## 1 condition 1 20.86 *** <.001
## 2 zTrialOfCond 1 60.59 *** <.001
## 3 zAge 1 1.46 .227
## 4 condition:zTrialOfCond 1 0.08 .781
## 5 condition:zAge 1 0.21 .650
## 6 zTrialOfCond:zAge 1 1.46 .226
## 7 condition:zTrialOfCond:zAge 1 0.09 .770
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: stage_2_acc ~ condition * zTrialOfCond * (zAge) + (condition *
## zTrialOfCond | subID)
## Data: data
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+06))
##
## AIC BIC logLik deviance df.resid
## 8674.1 8807.6 -4319.1 8638.1 12262
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -16.3075 0.0788 0.1984 0.3889 2.4780
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subID (Intercept) 2.4576 1.5677
## condition1 0.3558 0.5965 -0.09
## zTrialOfCond 0.4269 0.6534 0.77 0.01
## condition1:zTrialOfCond 0.2272 0.4766 0.18 0.36 0.13
## Number of obs: 12280, groups: subID, 92
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 2.37787 0.17242 13.792 < 2e-16 ***
## condition1 -0.41517 0.08149 -5.095 3.5e-07 ***
## zTrialOfCond 0.71264 0.08315 8.571 < 2e-16 ***
## zAge 0.20570 0.16936 1.215 0.225
## condition1:zTrialOfCond -0.01845 0.06823 -0.270 0.787
## condition1:zAge -0.03405 0.07434 -0.458 0.647
## zTrialOfCond:zAge 0.09524 0.07818 1.218 0.223
## condition1:zTrialOfCond:zAge 0.01863 0.06182 0.301 0.763
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) cndtn1 zTrlOC zAge cn1:TOC cnd1:A zTOC:A
## condition1 -0.108
## zTrialOfCnd 0.713 -0.045
## zAge 0.021 -0.003 0.033
## cndtn1:zTOC 0.096 0.473 -0.007 -0.001
## condtn1:zAg -0.003 0.091 -0.002 -0.096 0.079
## zTrlOfCnd:A 0.034 -0.003 0.067 0.715 -0.009 -0.014
## cndt1:TOC:A -0.002 0.078 -0.009 0.131 0.091 0.397 0.044
Plot: Proportion optimal machine selections across age groups and
trials

Agency task: Agency decisions
Model: Agency decisions by VoC
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: agency ~ zVoC * zTrialOfCond * zAge + (zVoC * zTrialOfCond |
## Model: subID)
## Data: banditTask
## Df full model: 18
## Effect df Chisq p.value
## 1 zVoC 1 144.39 *** <.001
## 2 zTrialOfCond 1 3.56 + .059
## 3 zAge 1 0.01 .906
## 4 zVoC:zTrialOfCond 1 50.21 *** <.001
## 5 zVoC:zAge 1 4.17 * .041
## 6 zTrialOfCond:zAge 1 2.53 .111
## 7 zVoC:zTrialOfCond:zAge 1 9.59 ** .002
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: agency ~ zVoC * zTrialOfCond * zAge + (zVoC * zTrialOfCond |
## subID)
## Data: data
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+06))
##
## AIC BIC logLik deviance df.resid
## 26597.3 26746.3 -13280.7 26561.3 28962
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -33.889 -0.549 0.190 0.543 13.837
##
## Random effects:
## Groups Name Variance Std.Dev. Corr
## subID (Intercept) 1.86467 1.3655
## zVoC 0.45871 0.6773 -0.18
## zTrialOfCond 0.23503 0.4848 0.63 -0.02
## zVoC:zTrialOfCond 0.09566 0.3093 -0.02 0.47 -0.34
## Number of obs: 28980, groups: subID, 92
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 0.74203 0.14391 5.156 2.52e-07 ***
## zVoC 1.42145 0.07444 19.096 < 2e-16 ***
## zTrialOfCond 0.10238 0.05418 1.890 0.05879 .
## zAge -0.01696 0.14368 -0.118 0.90603
## zVoC:zTrialOfCond 0.32578 0.03909 8.335 < 2e-16 ***
## zVoC:zAge 0.15339 0.07390 2.076 0.03792 *
## zTrialOfCond:zAge -0.08631 0.05364 -1.609 0.10759
## zVoC:zTrialOfCond:zAge 0.12286 0.03816 3.219 0.00129 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr) zVoC zTrlOC zAge zVC:zTOC zVC:zA zTOC:A
## zVoC -0.157
## zTrialOfCnd 0.603 -0.002
## zAge 0.003 0.000 0.001
## zVC:zTrlOfC -0.005 0.431 -0.219 0.001
## zVoC:zAge 0.000 0.015 0.002 -0.161 0.013
## zTrlOfCnd:A 0.001 0.001 0.012 0.604 -0.005 -0.006
## zVC:zTrOC:A 0.001 0.013 -0.004 -0.008 0.041 0.427 -0.242
Model: Agency decisions when VoC = 0
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: agency ~ zAge + (1 | subID)
## Data: banditTask.vocZeroTrials
## Df full model: 3
## Effect df Chisq p.value
## 1 zAge 1 0.00 .961
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
## Generalized linear mixed model fit by maximum likelihood (Laplace
## Approximation) [glmerMod]
## Family: binomial ( logit )
## Formula: agency ~ zAge + (1 | subID)
## Data: data
## Control: glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 1e+06))
##
## AIC BIC logLik deviance df.resid
## 4304.7 4323.7 -2149.4 4298.7 4137
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -4.2769 -0.6929 0.3759 0.6286 2.1169
##
## Random effects:
## Groups Name Variance Std.Dev.
## subID (Intercept) 1.24 1.113
## Number of obs: 4140, groups: subID, 92
##
## Fixed effects:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) 1.246212 0.124404 10.017 <2e-16 ***
## zAge -0.006025 0.123891 -0.049 0.961
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Correlation of Fixed Effects:
## (Intr)
## zAge -0.002
Plot: Sensitivity to the value of choice

Plot: Sensitivity to value of control with continuous age


Summary stats: Sensitivity to value of control
Choice preference task
Choice preference task: summary stats
Model: Choice preference task accuracy
## Mixed Model Anova Table (Type 3 tests, LRT-method)
##
## Model: correct ~ zDiff * zAge + (zDiff | subID)
## Data: rewardSense.filtered
## Df full model: 7
## Effect df Chisq p.value
## 1 zDiff 1 79.85 *** <.001
## 2 zAge 1 0.78 .376
## 3 zDiff:zAge 1 1.36 .244
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
Explicit reward knowledge task
Explicit reward knowledge task: summary stats
Model: Explicit reward knowledge by age and true probabilities
## Mixed Model Anova Table (Type 3 tests, S-method)
##
## Model: error ~ zTrueProb * zAge + (1 | subID)
## Data: explicitKnow.filtered
## Effect df F p.value
## 1 zTrueProb 1, 456.86 21.67 *** <.001
## 2 zAge 1, 89.88 0.04 .845
## 3 zTrueProb:zAge 1, 456.86 0.36 .548
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '+' 0.1 ' ' 1
Plot: Explicit reward knowledge

LS0tCnRpdGxlOiAiVm9DIEFuYWx5c2VzIFBhcnQgMjogUmVncmVzc2lvbnMiCmRhdGU6IDEvOC8yNApvdXRwdXQ6CiAgICBodG1sX2RvY3VtZW50OgogICAgICAgIGRmX3ByaW50OiAncGFnZWQnCiAgICAgICAgdG9jOiB0cnVlCiAgICAgICAgdG9jX2Zsb2F0OgogICAgICAgICAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICAgICAgICAgIHNtb290aF9zY3JvbGw6IHRydWUKICAgICAgICBudW1iZXJfc2VjdGlvbnM6IGZhbHNlCiAgICAgICAgY29kZV9kb3dubG9hZDogdHJ1ZQogICAgICAgIHNlbGZfY29udGFpbmVkOiB0cnVlCi0tLQpgYGB7ciBjaHVuayBzZXR0aW5ncywgaW5jbHVkZSA9IEZBTFNFfQojIHNldCBjaHVuayBzZXR0aW5ncwprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgIGNhY2hlID0gVFJVRSwKICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgIHdhcm5pbmcgPSBGQUxTRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KGRwaT02MDApCmtuaXRyOjpvcHRzX2tuaXQkc2V0KHJvb3QuZGlyID0gcnByb2pyb290OjpmaW5kX3JzdHVkaW9fcm9vdF9maWxlKCkpCmBgYAogICAgICAgICAgICAgICAgICAgICAgCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQoKIyBsaXN0IGFsbCBwYWNrYWdlcyByZXF1aXJlZCBmb3IgdGhlIGFuYWx5c2lzCmxpc3Rfb2ZfcGFja2FnZXMgPC0gYygidGlkeXZlcnNlIiwgImFmZXgiLCAicGFuZGVyIikKCiMgbG9hZCBhbGwgcGFja2FnZXMgCmxhcHBseShsaXN0X29mX3BhY2thZ2VzLCBsaWJyYXJ5LCBjaGFyYWN0ZXIub25seSA9IFRSVUUpCgojIGFkZCB0aGVtZSBmb3IgcGxvdHRpbmcKdm9jX3RoZW1lIDwtIGZ1bmN0aW9uICgpIHsKICB0aGVtZSgKICAgIHBhbmVsLmJvcmRlciA9IGVsZW1lbnRfcmVjdChmaWxsID0gInRyYW5zcGFyZW50IiwgY29sb3I9ImdyYXk3NSIpLAogICAgcGFuZWwuYmFja2dyb3VuZCAgPSBlbGVtZW50X2JsYW5rKCksCiAgICBwbG90LmJhY2tncm91bmQgPSBlbGVtZW50X2JsYW5rKCksIAogICAgbGVnZW5kLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbD0idHJhbnNwYXJlbnQiLCBjb2xvdXI9TkEpLAogICAgbGVnZW5kLmtleSA9IGVsZW1lbnRfcmVjdChmaWxsPSJ0cmFuc3BhcmVudCIsIGNvbG91cj1OQSksCiAgICBsaW5lID0gZWxlbWVudF9ibGFuaygpLAogICAgYXhpcy50aWNrcyA9IGVsZW1lbnRfbGluZShjb2xvcj0iZ3JheTc1IiksCiAgICB0ZXh0PWVsZW1lbnRfdGV4dChmYW1pbHk9IkF2ZW5pciIpLAogICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMiksCiAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNSksCiAgICB0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTUpLAogICAgc3RyaXAuYmFja2dyb3VuZCA9IGVsZW1lbnRfYmxhbmsoKSwKICAgIHN0cmlwLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xMikKICApCn0KCmNvbG9yMSA9ICIjMDBiNGQ4Igpjb2xvcjIgPSAiIzAwNzdiNiIKY29sb3IzID0gIiMwMzA0NWUiCgoKI3otc2NvcmUgZnVuY3Rpb24Kc2NhbGVfdGhpcyA8LSBmdW5jdGlvbih4KXsKICAoeCAtIG1lYW4oeCwgbmEucm09VFJVRSkpIC8gc2QoeCwgbmEucm09VFJVRSkKfQoKYGBgCgojIFBhcnRpY2lwYW50IGluZm8KYGBge3IgcGFydGljaXBhbnRzIHBsb3R9CgojbG9hZCBkZW1vZ3JhcGhpYyBpbmZvCnN1Yl9pbmZvIDwtIHJlYWRfY3N2KCdkYXRhL3ZvY19zdWJfaW5mby5jc3YnKSAKCiMgcGxvdCBoaXN0b2dyYW0gb2YgbWFsZSBhbmQgZmVtYWxlIHBhcnRpY2lwYW50cwpzdWJfaW5mbyAlPiUgbXV0YXRlKHdob2xlX2FnZSA9IGZsb29yKGFnZSkpICU+JSAKICAgIGdyb3VwX2J5KHN1YklELCBnZW5kZXIsIHdob2xlX2FnZSkgJT4lIAogICAgZGlzdGluY3Qoc3ViSUQpICU+JSAKICAgIGdncGxvdCguLCBhZXMoeD13aG9sZV9hZ2UsIGZpbGw9Z2VuZGVyKSkgKwogICAgZ2VvbV9oaXN0b2dyYW0oYmlud2lkdGggPSAxLCBjb2xvcj0id2hpdGUiKSArCiAgICBzY2FsZV9maWxsX21hbnVhbChuYW1lPSJTZXgiLAogICAgICAgICAgICAgICAgICAgIGxhYmVscz1jKCJGZW1hbGUiLCAiTWFsZSIpLAogICAgICAgICAgICAgICAgICAgIHZhbHVlcz1jKGNvbG9yMSwgY29sb3IyKSkgKwogICAgc2NhbGVfeV9jb250aW51b3VzKGJyZWFrcyA9IGMoMiw0LDYsOCwxMCksCiAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCIyIiwiNCIsIjYiLCI4IiwiMTAiKSwKICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoMCwxMCkpICsKICAgIHhsYWIoIkFnZSIpICsKICAgIHlsYWIoIkNvdW50IikgKwogICAgdm9jX3RoZW1lKCkKYGBgCgpgYGB7ciBwYXJ0aWNpcGFudCBpbmZvfQoKI2xvYWQgZGVtb2dyYXBoaWMgaW5mbwpzdWJfaW5mbyA8LSByZWFkX2NzdignZGF0YS92b2Nfc3ViX2luZm8uY3N2JykgJT4lCiAgICBtdXRhdGUoYWdlX2dyb3VwID0gY2FzZV93aGVuKGFnZSA8IDEzIH4gIkNoaWxkcmVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdlID4gMTIuOTkgJiBhZ2UgPCAxOCB+ICJBZG9sZXNjZW50cyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZSA+IDE3Ljk5IH4gIkFkdWx0cyIpKQoKc3ViX2luZm8kYWdlX2dyb3VwIDwtIGZhY3RvcihzdWJfaW5mbyRhZ2VfZ3JvdXAsIGxldmVscyA9IGMoIkNoaWxkcmVuIiwgIkFkb2xlc2NlbnRzIiwgIkFkdWx0cyIpKQoKIyBhZ2UgZ3JvdXAgaW5mb3JtYXRpb24KYWdlX2dyb3VwX2luZm8gPC0gc3ViX2luZm8gJT4lCiAgICBncm91cF9ieShhZ2VfZ3JvdXApICU+JQogICAgc3VtbWFyaXplKE4gPSBuKCksIAogICAgICAgICAgICAgIG1lYW5BZ2UgPSBtZWFuKGFnZSksCiAgICAgICAgICAgICAgc2RBZ2UgPSBzZChhZ2UpLAogICAgICAgICAgICAgIG5GZW1hbGUgPSBzdW0oZ2VuZGVyID09ICJGIikKICAgICAgICAgICAgICApCgpwYW5kZXIoYWdlX2dyb3VwX2luZm8pCmBgYAoKCiMgQWdlbmN5IHRhc2s6IE1hY2hpbmUgc2VsZWN0aW9uCiMjIE1vZGVsOiBPcHRpbWFsIG1hY2hpbmUgY2hvaWNlcyBhY3Jvc3MgdHJpYWxzIGJ5IGNvbmRpdGlvbiBhbmQgYWdlCmBgYHtyIG1hY2hpbmUgY2hvaWNlcyBhY3Jvc3MgdHJpYWxzIGJ5IGFnZX0KCiMgUmVhZCBpbiBkYXRhCmJhbmRpdFRhc2sgPC0gcmVhZF9jc3YoJ2RhdGEvcHJvY2Vzc2VkL2JhbmRpdF90YXNrLmNzdicpIAoKI2NvbWJpbmUgd2l0aCBwYXJ0aWNpcGFudCBhZ2UKYmFuZGl0VGFzayA8LSBmdWxsX2pvaW4oYmFuZGl0VGFzaywgc3ViX2luZm8sIGJ5ID0gYygic3ViSUQiKSkKCiMgRmlsdGVyIGRhdGEgdG8gaGF2ZSBvbmx5IHRyaWFscyB3aGVyZSBwZW9wbGUgY2hvb3NlIGFnZW5jeSBhbmQgZXhjbHVkZSB0cmlhbHMgd2l0aCA1MC01MCBjb25kaXRpb24gCmJhbmRpdFRhc2suZmlsdGVyZWQgPC0gYmFuZGl0VGFzayAlPiUgCiAgICBmaWx0ZXIoYWdlbmN5ID09IDEsIGNvbmRpdGlvbiE9ImJhbmRpdHM1MDUwIikKCiMgU2NhbGUgY29udGludW91cyB2YXJpYWJsZXMKYmFuZGl0VGFzay5maWx0ZXJlZCR6QWdlIDwtIHNjYWxlX3RoaXMoYmFuZGl0VGFzay5maWx0ZXJlZCRhZ2UpCmJhbmRpdFRhc2suZmlsdGVyZWQkelRyaWFsT2ZDb25kIDwtIHNjYWxlX3RoaXMoYmFuZGl0VGFzay5maWx0ZXJlZCR0cmlhbE9mQ29uZCkKCiMgTWl4ZWQtZWZmZWN0cyBsb2dpc3RpYyByZWdyZXNzaW9uIG1vZGVsCmNvcnJlY3RfYnlDb25kaXRpb25UcmlhbEFnZS5taXhlZCA8LSBtaXhlZChzdGFnZV8yX2FjYyB+IGNvbmRpdGlvbip6VHJpYWxPZkNvbmQqKHpBZ2UpICsgKGNvbmRpdGlvbip6VHJpYWxPZkNvbmR8c3ViSUQpLCAKICAgICAgICAgICAgICAgIGRhdGEgPSBiYW5kaXRUYXNrLmZpbHRlcmVkLAogICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIAogICAgICAgICAgICAgICAgbWV0aG9kID0gIkxSVCIsCiAgICAgICAgICAgICAgICBjb250cm9sPWdsbWVyQ29udHJvbChvcHRpbWl6ZXI9ImJvYnlxYSIsIG9wdEN0cmw9bGlzdChtYXhmdW49MWU2KSkpCgojZGlzcGxheSBtb2RlbCBzdGF0cwpjb3JyZWN0X2J5Q29uZGl0aW9uVHJpYWxBZ2UubWl4ZWQgCnN1bW1hcnkoY29ycmVjdF9ieUNvbmRpdGlvblRyaWFsQWdlLm1peGVkKQpgYGAKCiMjIFBsb3Q6IFByb3BvcnRpb24gb3B0aW1hbCBtYWNoaW5lIHNlbGVjdGlvbnMgYWNyb3NzIGFnZSBncm91cHMgYW5kIHRyaWFscwpgYGB7ciBwbG90IGJhbmRpdCBjaG9pY2VzIGFjcm9zcyB0cmlhbHMsIHdpZHRoID0gNywgaGVpZ2h0ID0gNCwgdW5pdCA9ICJpbiJ9CgpiYW5kaXRUYXNrU3ViTWVhbnMgPC0gYmFuZGl0VGFzayAlPiUKICAgIG11dGF0ZShibG9jayA9IGZsb29yKCh0cmlhbC0xKS8yMSkgKyAxKSAlPiUKICAgIGZpbHRlcihhZ2VuY3k9PTEsIGNvbmRpdGlvbiE9ImJhbmRpdHM1MDUwIikgJT4lIAogICAgZ3JvdXBfYnkoY29uZGl0aW9uLCBibG9jaywgYWdlX2dyb3VwLCBzdWJJRCkgJT4lIAogICAgc3VtbWFyaXplKHBjdENvcnJlY3QgPSBtZWFuKHN0YWdlXzJfYWNjKSkKCmJhbmRpdFRhc2tNZWFucyA8LSBiYW5kaXRUYXNrU3ViTWVhbnMgJT4lCiAgICBncm91cF9ieShjb25kaXRpb24sIGJsb2NrLCBhZ2VfZ3JvdXApICU+JSAKICAgIHN1bW1hcml6ZShwY3RDb3JyID0gbWVhbihwY3RDb3JyZWN0KSwKICAgICAgICAgICAgICBzZSA9IHNkKHBjdENvcnJlY3QpL3NxcnQobigpKSkKCm1hY2hpbmVTZWxlY3Rpb25QbG90IDwtIGdncGxvdChiYW5kaXRUYXNrTWVhbnMsIGFlcyh4PWJsb2NrLCB5PXBjdENvcnIsIGNvbG9yPWNvbmRpdGlvbikpICsKICAgIGZhY2V0X3dyYXAofmFnZV9ncm91cCkgKwogICAgZ2VvbV9wb2ludChzaXplID0gMykgKwogICAgZ2VvbV9qaXR0ZXIoZGF0YSA9IGJhbmRpdFRhc2tTdWJNZWFucywgIGFlcyh4ID0gYmxvY2ssIHkgPSBwY3RDb3JyZWN0LCBjb2xvcj1jb25kaXRpb24pLCBzaXplID0gLjUpICsKICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGFlcyhmaWxsID0gY29uZGl0aW9uKSkgKwogICAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gLjUsIGxpbmV0eXBlPSJkYXNoZWQiKSArCiAgICB5bGFiKCJQcm9wb3J0aW9uIE9wdGltYWwgTWFjaGluZSBTZWxlY3Rpb25zIikgKwogICAgeGxhYigiQmxvY2siKSArCiAgICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gYyg0LCA4LCAxMikpICsKICAgIHNjYWxlX2ZpbGxfbWFudWFsKG5hbWU9IkNvbmRpdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9YygiNzAvMzAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjkwLzEwIiksCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9Yyhjb2xvcjEsIGNvbG9yMyksIAogICAgICAgICAgICAgICAgICAgICAgZ3VpZGUgPSBndWlkZV9sZWdlbmQocmV2ZXJzZT1UUlVFKSkgKwogICAgc2NhbGVfY29sb3JfbWFudWFsKG5hbWU9IkNvbmRpdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICBsYWJlbHM9YygiNzAvMzAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjkwLzEwIiksCiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9Yyhjb2xvcjEsIGNvbG9yMyksCiAgICAgICAgICAgICAgICAgICAgIGd1aWRlID0gZ3VpZGVfbGVnZW5kKHJldmVyc2U9VFJVRSkpICsKICAgIHZvY190aGVtZSgpICsKICAgIHRoZW1lKHN0cmlwLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZT0xMikpCm1hY2hpbmVTZWxlY3Rpb25QbG90CmBgYAoKCiMgQWdlbmN5IHRhc2s6IEFnZW5jeSBkZWNpc2lvbnMgCiMjIE1vZGVsOiBBZ2VuY3kgZGVjaXNpb25zIGJ5IFZvQwpgYGB7ciB2b2MgbW9kZWx9Cgojc2NhbGUgdm9jCmJhbmRpdFRhc2skelZvQyA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skdm9jKQpiYW5kaXRUYXNrJHpUcmlhbE9mQ29uZCA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skdHJpYWxPZkNvbmQpCmJhbmRpdFRhc2skekFnZSA8LSBzY2FsZV90aGlzKGJhbmRpdFRhc2skYWdlKQoKIyBwcmVkaWN0IGFnZW5jeSBjaG9pY2UgZnJvbSB1dGlsaXR5IG9mIGNvbnRyb2wsIHRyaWFsLCBsaW5lYXIgYWdlCmFnZW5jeV9ieVZPQ1RyaWFsQWdlLm1peGVkID0gbWl4ZWQoYWdlbmN5IH4gelZvQyAqIHpUcmlhbE9mQ29uZCAqIHpBZ2UgKyAoelZvQyAqIHpUcmlhbE9mQ29uZHxzdWJJRCksIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYmFuZGl0VGFzaywgCiAgICAgICAgICAgICAgICAgICAgICAgIGZhbWlseSA9IGJpbm9taWFsLCAKICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gIkxSVCIsIGNvbnRyb2w9Z2xtZXJDb250cm9sKG9wdGltaXplcj0iYm9ieXFhIixvcHRDdHJsPWxpc3QobWF4ZnVuPTFlNikpKSAKCiNkaXNwbGF5IHN0YXRzCmFnZW5jeV9ieVZPQ1RyaWFsQWdlLm1peGVkCnN1bW1hcnkoYWdlbmN5X2J5Vk9DVHJpYWxBZ2UubWl4ZWQpCmBgYAoKIyMgTW9kZWw6IEFnZW5jeSBkZWNpc2lvbnMgd2hlbiBWb0MgPSAwCmBgYHtyIHZvYyAwIG1vZGVsfQoKI2ZpbHRlciBkYXRhCmJhbmRpdFRhc2sudm9jWmVyb1RyaWFscyA8LSBiYW5kaXRUYXNrICU+JQogICAgZmlsdGVyKHZvYyA9PSAwKQoKI3NjYWxlIGFnZQpiYW5kaXRUYXNrLnZvY1plcm9UcmlhbHMkekFnZSA8LSBzY2FsZShiYW5kaXRUYXNrLnZvY1plcm9UcmlhbHMkYWdlKQoKIyBwcmVkaWN0IGFnZW5jeSBjaG9pY2UgZnJvbSB1dGlsaXR5IG9mIGNvbnRyb2wsIHRyaWFsLCBsaW5lYXIgYWdlCmFnZW5jeV92b2NaZXJvX2J5QWdlLm1peGVkID0gbWl4ZWQoYWdlbmN5IH4gIHpBZ2UgKyAoMXxzdWJJRCksIAogICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYmFuZGl0VGFzay52b2NaZXJvVHJpYWxzLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiTFJUIiwgY29udHJvbD1nbG1lckNvbnRyb2wob3B0aW1pemVyPSJib2J5cWEiLCBvcHRDdHJsPWxpc3QobWF4ZnVuPTFlNikpKSAKCiNkaXNwbGF5IHN0YXRzCmFnZW5jeV92b2NaZXJvX2J5QWdlLm1peGVkCnN1bW1hcnkoYWdlbmN5X3ZvY1plcm9fYnlBZ2UubWl4ZWQpCmBgYAoKIyMgUGxvdDogU2Vuc2l0aXZpdHkgdG8gdGhlIHZhbHVlIG9mIGNob2ljZQpgYGB7ciB2b2MgcGxvdCwgZmlnLmhlaWdodCA9IDQsIGZpZy53aWR0aCA9IDcsIHVuaXQgPSAiaW4ifQoKVm9DX3Bsb3Rfc3ViX21lYW5zIDwtIGJhbmRpdFRhc2sgJT4lIAogICAgbXV0YXRlKHRhc2tIYWxmID0gY2FzZV93aGVuKHRyaWFsIDwgMTU4IH4gIkZpcnN0IEhhbGYgb2YgVGFzayIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpYWwgPiAxNTcgfiAiU2Vjb25kIEhhbGYgb2YgVGFzayIpKSAlPiUKICAgIGdyb3VwX2J5KGFnZV9ncm91cCwgdGFza0hhbGYsIHZvYywgc3ViSUQpICU+JQogICAgc3VtbWFyaXplKG1lYW5TdWJBZ2VuY3kgPSBtZWFuKGFnZW5jeSwgbmEucm0gPSBUKSkKClZvQ19wbG90X21lYW5zIDwtIFZvQ19wbG90X3N1Yl9tZWFucyAlPiUgCiAgICBncm91cF9ieShhZ2VfZ3JvdXAsIHRhc2tIYWxmLCB2b2MpICU+JQogICAgc3VtbWFyaXplKG1lYW5BZ2VuY3kgPSBtZWFuKG1lYW5TdWJBZ2VuY3ksIG5hLnJtID0gVCksCiAgICAgICAgICAgICAgc2VBZ2VuY3kgPSBzZChtZWFuU3ViQWdlbmN5IC8gc3FydChuKCkpKSkKCiNwbG90ClZvQ19wbG90IDwtIGdncGxvdChWb0NfcGxvdF9tZWFucywgYWVzKHggPSB2b2MsIHkgPSBtZWFuQWdlbmN5LCBjb2xvciA9IGFnZV9ncm91cCkpICsKICAgIGZhY2V0X3dyYXAofnRhc2tIYWxmKSArCiAgICBnZW9tX3BvaW50KGFlcyhjb2xvciA9IGFnZV9ncm91cCkpICsgCiAgICBnZW9tX2Vycm9yYmFyKGFlcyhjb2xvciA9IGFnZV9ncm91cCwgeW1pbiA9IG1lYW5BZ2VuY3kgLSBzZUFnZW5jeSwgeW1heCA9IG1lYW5BZ2VuY3kgKyBzZUFnZW5jeSksIHdpZHRoID0gLjEpICsgCiAgICBnZW9tX2xpbmUoYWVzKGdyb3VwID0gYWdlX2dyb3VwKSkgKwogICAgc2NhbGVfY29sb3JfbWFudWFsKHZhbHVlcz1jKCIjODQzNDdDIiwgIiNCNDA0MjQiLCAiI0VCNkQxRSIpLCBuYW1lID0gIkFnZSBHcm91cCIpICsKICAgIHhsYWIoIlZhbHVlIG9mIENob2ljZSAoVm9DKSIpICsKICAgIHlsYWIoIlByb3BvcnRpb24gQWdlbmN5IENob2ljZXMiKSArCiAgICBnZW9tX2hsaW5lKHlpbnRlcmNlcHQgPSAuNSwgbGluZXR5cGUgPSAiZGFzaGVkIikgKwogICAgZ2VvbV92bGluZSh4aW50ZXJjZXB0ID0gMCwgbGluZXR5cGUgPSAiZGFzaGVkIikgKwogICAgdm9jX3RoZW1lKCkKVm9DX3Bsb3QKYGBgCgojIyBQbG90OiBTZW5zaXRpdml0eSB0byB2YWx1ZSBvZiBjb250cm9sIHdpdGggY29udGludW91cyBhZ2UgCmBgYHtyIHZvYyBwbG90IGNvbnRpbnVvdXMgYWdlLCBmaWcuaGVpZ2h0ID0gMy45LCBmaWcud2lkdGggPSAzLCB1bml0ID0gImluIn0KCiNydW4gbW9kZWwgd2l0aG91dCBhZ2UgdG8gZ2V0IHJhbmRvbSBlZmZlY3RzIGZvciBlYWNoIHBhcnRpY2lwYW50CmFnZW5jeV9ieVZPQ1RyaWFsLmdsbWVyID0gbWl4ZWQoYWdlbmN5IH4gelZvQyAqIHpUcmlhbE9mQ29uZCArICh6Vm9DICogelRyaWFsT2ZDb25kfHN1YklEKSwgCiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBiYW5kaXRUYXNrLCAKICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsIAogICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiTFJUIiwgY29udHJvbD1nbG1lckNvbnRyb2wob3B0aW1pemVyPSJib2J5cWEiLG9wdEN0cmw9bGlzdChtYXhmdW49MWU2KSksCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA9ICJtZXJNb2QiKSAKCiNnZXQgZml4ZWQgZWZmZWN0IG9mIHpWb0MKVm9DX2ZpeGVkZWZmIDwtIGFzLmRhdGEuZnJhbWUoY29lZihzdW1tYXJ5KGFnZW5jeV9ieVZPQ1RyaWFsLmdsbWVyKSkpJEVzdGltYXRlWzJdClZvQ19pbnRfZml4ZWRlZmYgPC0gYXMuZGF0YS5mcmFtZShjb2VmKHN1bW1hcnkoYWdlbmN5X2J5Vk9DVHJpYWwuZ2xtZXIpKSkkRXN0aW1hdGVbNF0KCiNnZXQgcmFuZG9tIGVmZmVjdHMKVm9DX2VmZmVjdHMgPC0gcmFuZWYoYWdlbmN5X2J5Vk9DVHJpYWwuZ2xtZXIpJHN1YklEICU+JQogICAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJzdWJJRCIpCgojY29tYmluZSB3aXRoIGFnZQpWb0Nfc3ViRWZmZWN0cyA8LSBiYW5kaXRUYXNrICU+JQogICAgc2VsZWN0KHN1YklELCBhZ2UpICU+JSAKICAgIHVuaXF1ZSgpICU+JQogICAgbGVmdF9qb2luKFZvQ19lZmZlY3RzLCBieSA9IGMoInN1YklEIikpICU+JQogICAgbXV0YXRlKHpWb0NGdWxsID0gelZvQyArIFZvQ19maXhlZGVmZiwgCiAgICAgICAgICAgaW50RnVsbCA9IGB6Vm9DOnpUcmlhbE9mQ29uZGAgKyBWb0NfaW50X2ZpeGVkZWZmKQoKI3Bsb3QgYWdlIGJ5IFZvQyBlZmZlY3QKVm9DX3Bsb3RfY29udGludW91c0FnZSA8LSBnZ3Bsb3QoVm9DX3N1YkVmZmVjdHMsIGFlcyh4ID0gYWdlLCB5ID0gelZvQ0Z1bGwpKSArCiAgICBnZW9tX3BvaW50KGNvbG9yID0gIiNFQjZEMUUiKSArIAogICAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiIzg0MzQ3QyIsIGZpbGwgPSAiIzg0MzQ3QyIpICsKICAgIHZvY190aGVtZSgpICsgCiAgICB4bGFiKCJBZ2UiKSArCiAgICB5bGFiKCJWb0MgRWZmZWN0IikgClZvQ19wbG90X2NvbnRpbnVvdXNBZ2UKCiNwbG90IGFnZSBieSBWb0MgeCB0cmlhbCBlZmZlY3QKVm9DX3Bsb3RfY29udGludW91c0FnZVRyaWFsIDwtIGdncGxvdChWb0Nfc3ViRWZmZWN0cywgYWVzKHggPSBhZ2UsIHkgPSBpbnRGdWxsKSkgKwogICAgZ2VvbV9wb2ludChjb2xvciA9ICIjRUI2RDFFIikgKyAKICAgIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gIiM4NDM0N0MiLCBmaWxsID0gIiM4NDM0N0MiKSArCiAgICB2b2NfdGhlbWUoKSArIAogICAgeGxhYigiQWdlIikgKwogICAgeWxhYigiVm9DIHggVHJpYWwgRWZmZWN0IikgClZvQ19wbG90X2NvbnRpbnVvdXNBZ2VUcmlhbApgYGAKCgojIyBTdW1tYXJ5IHN0YXRzOiBTZW5zaXRpdml0eSB0byB2YWx1ZSBvZiBjb250cm9sCmBgYHtyIHZvYyBzdW1tYXJ5IHN0YXRzfQoKIyBXaGF0IHByb3BvcnRpb24gb2YgdHJpYWxzIGRpZCBwYXJ0aWNpcGFudHMgY2hvb3NlIGFnZW5jeSB3aGVuIFZvQyB3YXMgMD8KVm9DX3plcm9fbWVhbnNfc3ViIDwtIGJhbmRpdFRhc2sgJT4lIAogICAgZmlsdGVyKHZvYyA9PSAwKSAlPiUKICAgIGdyb3VwX2J5KHN1YklELCBhZ2VfZ3JvdXApICU+JQogICAgc3VtbWFyaXplKG1lYW5TdWJBZ2VuY3kgPSBtZWFuKGFnZW5jeSwgbmEucm0gPSBUKSkKClZvQ196ZXJvX21lYW5zIDwtIFZvQ196ZXJvX21lYW5zX3N1YiAlPiUKICAgIHN1bW1hcml6ZShtZWFuQWdlbmN5ID0gbWVhbihtZWFuU3ViQWdlbmN5LCBuYS5ybSA9IFQpLAogICAgICAgICAgICAgIHNlQWdlbmN5ID0gc2QobWVhblN1YkFnZW5jeSAvIHNxcnQobigpKSkpClZvQ196ZXJvX21lYW5zCmBgYAoKCiMgQ2hvaWNlIHByZWZlcmVuY2UgdGFzayAKIyMgQ2hvaWNlIHByZWZlcmVuY2UgdGFzazogc3VtbWFyeSBzdGF0cwpgYGB7ciByZXdhcmQgc2Vuc2Ugc3VtbWFyeSBzdGF0c30KCiMgUmVhZCBpbiBkYXRhCnJld2FyZFNlbnNlIDwtIHJlYWRfY3N2KCdkYXRhL3Byb2Nlc3NlZC9yZXdhcmRfc2Vuc2l0aXZpdHlfdGFzay5jc3YnKSAKCiNjb21iaW5lIHdpdGggYWdlCnJld2FyZFNlbnNlIDwtIGZ1bGxfam9pbihyZXdhcmRTZW5zZSwgc3ViX2luZm8sIGJ5ID0gYygic3ViSUQiKSkKCiMgc3VtbWFyeSBzdGF0cyBmb3IgYWNjdXJhY3kKb3ZlcmFsbEFjYyA8LSByZXdhcmRTZW5zZSAlPiUgCiAgICBncm91cF9ieShzdWJJRCkgJT4lIAogICAgZmlsdGVyKGFjY3VyYWN5IT0wKSAlPiUgCiAgICBzdW1tYXJpemUobT1tZWFuKGNvcnJlY3QsIG5hLnJtPVQpKSAlPiUgCiAgICB1bmdyb3VwKCkgJT4lIAogICAgc3VtbWFyaXplKG1lYW5BY2N1cmFjeSA9IG1lYW4obSksIHN0ZGV2ID0gc2QobSkpCm92ZXJhbGxBY2MKCiMgbWVhbiA9IDc2LjklCiMgc3RkZXYgPSAxNS4zJQpgYGAKCiMjIE1vZGVsOiBDaG9pY2UgcHJlZmVyZW5jZSB0YXNrIGFjY3VyYWN5CmBgYHtyIGJhbmRpdCBjaG9pY2VzIGFjcm9zcyBieSBhZ2UgaW4gcG9zdC10YXNrIGFzc2Vzc21lbnR9CgojIGZpcnN0LCBmaWx0ZXIgZGF0YSBhbmQgcmVzY2FsZSB2YXJpYWJsZXMKcmV3YXJkU2Vuc2UuZmlsdGVyZWQgPC0gcmV3YXJkU2Vuc2UgJT4lICAKICAgIGZpbHRlcihhY2N1cmFjeSE9MCkKCiMgcmVzY2FsZSB2YXJpYWJsZXMgb2YgYWdlIGFuZCB0aGUgdHJ1ZSBwcm9iYWJpbGl0eSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHR3byBkaXNwbGF5ZWQgYmFuZGl0cyAKcmV3YXJkU2Vuc2UuZmlsdGVyZWQkekFnZSA8LSBzY2FsZShyZXdhcmRTZW5zZS5maWx0ZXJlZCRhZ2UpCnJld2FyZFNlbnNlLmZpbHRlcmVkJHpEaWZmPC0gc2NhbGUocmV3YXJkU2Vuc2UuZmlsdGVyZWQkZGlmZikKCiMgcnVuIG1vZGVsCnJld2FyZFNlbnNlLm1peGVkIDwtIG1peGVkKGNvcnJlY3R+ekRpZmYqekFnZSArICh6RGlmZnxzdWJJRCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPSByZXdhcmRTZW5zZS5maWx0ZXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJMUlQiKQpyZXdhcmRTZW5zZS5taXhlZCAKYGBgCgoKIyBFeHBsaWNpdCByZXdhcmQga25vd2xlZGdlIHRhc2sgCiMjIEV4cGxpY2l0IHJld2FyZCBrbm93bGVkZ2UgdGFzazogc3VtbWFyeSBzdGF0cwpgYGB7ciBleHBsaWNpdCBrbm93bGVkZ2UgdGFza30KCiMgUmVhZCBpbiBkYXRhCmV4cGxpY2l0S25vdyA8LSByZWFkX2NzdignZGF0YS9wcm9jZXNzZWQvZXhwbGljaXRfa25vd2xlZGdlX3Rhc2suY3N2JykgCgojY29tYmluZSB3aXRoIGFnZQpleHBsaWNpdEtub3cgPC0gZnVsbF9qb2luKGV4cGxpY2l0S25vdywgc3ViX2luZm8sIGJ5ID0gYygic3ViSUQiKSkKCmV4cGxpY2l0S25vdyAlPiUgCiAgZ3JvdXBfYnkoc3ViSUQsIGFnZSkgJT4lIAogIHN1bW1hcml6ZShtID0gbWVhbihlcnJvcikpICU+JSAKICB1bmdyb3VwKCkgJT4lIAogIHN1bW1hcml6ZShtZWFuRXJyID0gbWVhbihtLCBuYS5ybT1UKSwgc2QgPSBzZChtLG5hLnJtID0gVCkpCmBgYAoKIyMgTW9kZWw6IEV4cGxpY2l0IHJld2FyZCBrbm93bGVkZ2UgYnkgYWdlIGFuZCB0cnVlIHByb2JhYmlsaXRpZXMKYGBge3IgZXhwbGljaXQga25vd2xlZGdlIG1vZGVsfQojIHByZWRpY3QgdHJpYWwtbGV2ZWwgZXJyb3IgZnJvbSB0cnVlIHByb2JhYmlsaXR5IGFuZCBhZ2UKCiNyZS1zY2FsZSBhZ2UgYW5kIHpUcnVlUHJvYgpleHBsaWNpdEtub3cuZmlsdGVyZWQgPC0gZXhwbGljaXRLbm93ICU+JQogICAgc2VsZWN0KHN1YklELCBhZ2UsIHRydWVQcm9iLCByZXNwb25zZSwgZXJyb3IpICU+JQogICAgZHJvcF9uYSgpCgpleHBsaWNpdEtub3cuZmlsdGVyZWQkekFnZSA8LSBzY2FsZShleHBsaWNpdEtub3cuZmlsdGVyZWQkYWdlKQpleHBsaWNpdEtub3cuZmlsdGVyZWQkelRydWVQcm9iIDwtIHNjYWxlKGV4cGxpY2l0S25vdy5maWx0ZXJlZCR0cnVlUHJvYikKCiMgcnVuIG1vZGVsCmV4cGxpY2l0S25vd19lcnJvcmJ5VHJ1ZVByb2JBZ2UubWl4ZWQgPC0gbWl4ZWQoZXJyb3IgfiB6VHJ1ZVByb2IqekFnZSArICgxfHN1YklEKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGV4cGxpY2l0S25vdy5maWx0ZXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QgPSAiUyIpIApleHBsaWNpdEtub3dfZXJyb3JieVRydWVQcm9iQWdlLm1peGVkCmBgYAoKIyMgUGxvdDogRXhwbGljaXQgcmV3YXJkIGtub3dsZWRnZQpgYGB7ciBwbG90IGV4cGxpY2l0IGtub3dsZWRnZX0KIyBwbG90IHJlc3BvbnNlIGJ5IGJhbmRpdApleHBsaWNpdEtub3cgJT4lIAogICAgZ2dwbG90KC4sIGFlcyh4PWZhY3Rvcih0cnVlUHJvYiksIHk9cmVzcG9uc2UsIGZpbGw9YWdlX2dyb3VwKSkgKwogICAgZ2VvbV9ib3hwbG90KCkgKwogICAgc2NhbGVfZmlsbF9tYW51YWwodmFsdWVzID0gYyhjb2xvcjEsIGNvbG9yMiwgY29sb3IzKSwgbmFtZSA9ICJBZ2UgR3JvdXAiKSArCiAgICB5bGFiKCJSZXBvcnRlZCBSZXdhcmQgUHJvYmFiaWxpdHkiKSArCiAgICB4bGFiKCJUcnVlIFJld2FyZCBQcm9iYWJpbGl0eSIpICsKICAgIHNjYWxlX3hfZGlzY3JldGUobGFiZWxzID0gYygiMTAlIiwgIjMwJSIsICI1MCUiLCAiNzAlIiwgIjkwJSIpKSArCiAgICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gYygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSwgCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIjEwJSIsICIyMCUiLCAiMzAlIiwgIjQwJSIsICI1MCUiLCAiNjAlIiwgIjcwJSIsICI4MCUiLCAiOTAlIikpICsKICAgIHZvY190aGVtZSgpCmBgYAo=